Rust: Closure
code: definition.rs
pub trait FnOnce<Args> {
type Output;
extern "rust-call" fn call_once(self, args: Args) -> Self::Output;
}
pub trait FnMut<Args>: FnOnce<Args> {
extern "rust-call" fn call_mut(&mut self, args: Args) -> Self::Output;
}
pub trait Fn<Args>: FnMut<Args> {
extern "rust-call" fn call(&self, args: Args) -> Self::Output;
}
references
https://doc.rust-lang.org/beta/book/ch13-01-closures.html#creating-an-abstraction-of-behavior-with-closures
https://qiita.com/shortheron/items/c1735dc4c7c78b0b55e9 (Japanese)
https://kanejaku.org/posts/2018/12/rust-closure-types/ (Japanese)
#Rust